package com.linwen.excise.od;

import java.util.Scanner;

/**
 * 程序员小明打了一辆出租车去上班。出于职业敏感，他注意到这辆出租车的计费表有点问题，总是偏大。
 * <p>
 * 出租车司机解释说他不喜欢数字4，所以改装了计费表，任何数字位置遇到数字4就直接跳过，其余功能都正常。
 * <p>
 * 比如：
 * <p>
 * 23再多一块钱就变为25；
 * 39再多一块钱变为50；
 * 399再多一块钱变为500；
 * 小明识破了司机的伎俩，准备利用自己的学识打败司机的阴谋。
 * <p>
 * 给出计费表的表面读数，返回实际产生的费用。
 * <p>
 * 输入描述
 * <p>
 * 只有一行，数字N，表示里程表的读数。
 * <p>
 * (1<=N<=888888888)。
 * <p>
 * 输出描述
 * <p>
 * 一个数字，表示实际产生的费用。以回车结束。
 * <p>
 * 示例1   输入输出示例仅供调试，后台判题数据一般不包含示例
 * <p>
 * 输入
 * <p>
 * 5
 * <p>
 * 输出
 * <p>
 * 4
 */
public class _靠谱的车 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int price_after = scanner.nextInt();
        int ans = price_after;
        // k 表示当前跳过了多少个4
        // j 表示当前位数
        int skip_money = 0, k = 0, j = 1;
        while (price_after > 0) {
            //当前位上出现了4就 +1 (并考虑当前的位数)
            if (price_after % 10 > 4) {
                skip_money += (price_after % 10 - 1) * k + j;
            } else {
                skip_money += (price_after % 10) * k;
            }
            k = k * 9 + j;
            j *= 10;
            price_after /= 10;
        }
        System.out.println(ans - skip_money);
    }
}
